package com.sinog.biz.mapper.havexml;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sinog.core.domain.PrisonerCjpg;
import com.sinog.core.domain.PrisonerFx;
import com.sinog.core.model.FzlxIdVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @desc 服刑mapper
 * @author -
 * @date 2020-02-05-14:28
 */
public interface PrisonerFxMapper extends BaseMapper<PrisonerFx> {

    /**
     * 预安置人员信息录入 - 保存/更新 服刑信息
     * @param priNum priNum
     * @return int
     */
    int updatePriStop(String priNum);

    /**
     * 说明
     * @param priNum priNum
     * @param priStopOld priStopOld
     * @return int
     */
    int updatePriStopHn(@Param("priNum") String priNum,@Param("priStopOld") String priStopOld);

    /**
     * 更新服刑表操作
     * @param priNum priNum
     * @param priStop priStop
     * @param priStopOld priStopOld
     * @param subRange subRange
     * @param account 当前帐号
     * @param date 当前日期
     * @return int
     */
    int updatePriStopAndPritime(
            @Param("priNum") String priNum,
            @Param("priStop") Date priStop,
            @Param("priStopOld") String priStopOld,
            @Param("subRange") String subRange,@Param("account") String account,@Param("date") Date date);

    /**
     * 根据罪名编号去查询罪名
     * @param priNum priNum
     * @return String
     */
    String selectByPriNum(@Param("priNum") String priNum);

    /**
     * 根据罪名编号去查询附加刑编号
     * @param priNum priNum
     * @return String
     */
    String selectAddenaltyByPriNum(@Param("priNum") String priNum);

    /**
     * 根据罪名编号去查犯罪类型编号
     * @param priNum priNum
     * @return String
     */
    String selectFzlxByPriNum(@Param("priNum") String priNum);

    /**
     * 现行期设置null
     * @param priNum priNum
     * @return int
     */
    int updatePriStopNow(@Param("priNum") String priNum);

    /**
     * 更改服刑表的adduserId
     * @param addUserId 更改后的addUserId
     * @param priNum 服刑人员编号
     * @return int 受影响行数
     */
    int updateAddUserIdByPriNum(@Param("addUserId") String addUserId,@Param("priNum") String priNum);

    /**
     * 根据犯罪编号查询评估信息
     * @param priNum 服刑人员编号
     * @return String
     */
    String getPingGu(String priNum);

    /**
     * 根据犯罪编号查询三五无三假等信息
     * @param priNum 服刑人员编号
     * @return Map<String,Object>
     */
    Map<String,String> getSwSjInfo(String priNum);

    /**
     * 根据罪犯编号查询罪犯的原判刑期止日和现刑期止日
     * @param priNum priNum
     * @return Map<String,String>
     */
    Map<String,Object> getPriStopAndPriStopNow(String priNum);

    /**
     * 罪犯编号对应的犯罪类型集合
     * @return List<FzlxIdVo>
     */
    List<FzlxIdVo> findFzlx();

    /**
     * 根据罪犯编码，修改服刑表的罪犯类型
     * @param item item
     */
    void updateFzlx1(FzlxIdVo item);

    /**
     * 根据犯罪编号统计prisoner_fx数量
     * @param priNum priNum
     * @return int
     */
    int getRepeatFxxx(@Param("priNum") String priNum);

    /**
     * 填写信息
     * @param priNum priNum
     * @return String
     */
    String searchPingguByPriNum(String priNum);

    /**
     * 获取服刑信息
     * @param priNum priNum
     * @return Map<String,String>
     */
    Map<String,String> getBaseInfoByPriNum(@Param("priNum") String priNum);

    /**
     * 户籍迁出信息--查看--服刑信息
     * @param priNum priNum
     * @return Map<String,Object>
     */
    Map<String,Object> getFxInfoViewByPriNum(@Param("priNum") String priNum);

    /**
     * 查询单条出监评估数据
     * @param priNum priNum
     * @return PrisonerCjpg
     */
    PrisonerCjpg selectCjpgInfoByPrNum(String priNum);

    /**
     * 信息补录-更新出监评估
     * @param jsonMap jsonMap
     * @return int
     */
    int updateCjpgInfoByPrNum(Map<String,Object> jsonMap);

    /**
     * 从prisoner_fx表获取罪犯刑期止日与刑期类型
     * @param priNum priNum
     * @return PrisonerFx
     */
    PrisonerFx getPrisonerFxInfo(String priNum);
    /**
     * 更改信息补录表的adduserId
     * @param departId 更改后的addUserId
     * @param priNum 服刑人员编号
     * @return int 受影响行数
     */
    int updateAddUserIdByPriNumNew(@Param("departId") String departId,@Param("priNum") String priNum);
    /**
     * 删除出监评估信息
     * @param priNum 服刑人员编号
     * @return int
     */
    int deleteCjpgByPriNum(String priNum);
}